package com.huatai.bi.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huatai.bi.dto.bigScreen.BigCrossTableQueryDTO;
import com.huatai.bi.dto.bigScreen.BigScreenDataSetQueryDTO;
import com.huatai.bi.entity.BigScreenDataSetEntity;
import com.huatai.bi.vo.bigScreenVO.DataSetTreeVO;
import com.huatai.bi.vo.bigScreenVO.ProDirDataSetVO;
import com.huatai.bi.vo.bigScreenVO.ScreenDataSetColumnVO;

import java.util.HashMap;
import java.util.List;

/**
 * @BelongsProject: itc-airport-cloud
 * @BelongsPackage: com.huatai.bi.service
 * @Author: hecaiy
 * @CreateTime: 2024-07-11  16:26
 * @Description: TODO
 * @Version: 1.0
 */
public interface BigScreenDataSetService extends IService<BigScreenDataSetEntity> {

    /**
     * 根据态势版本code  获取数据集
     * @param code
     * @return
     */
    List<ProDirDataSetVO> getBigScreenDataSetList(String code);

    /**
     * 获取大屏数据集树
     * @return
     */
    List<DataSetTreeVO> getDataSetTree();

    DataSetTreeVO monitorTree();

    /**
     * 获取大屏数据集列
     * @param dtId
     * @return
     */
    ScreenDataSetColumnVO getColumnList(Long dtId);

    /**
     * 获取大屏数据集数据
     * @param dto
     * @return
     */
    JSONObject getScreenDataSetDataListCommon(BigScreenDataSetQueryDTO dto);

    /**
     * 获取大屏数据集数据
     * @param dtId
     * @return
     */
    JSONObject getScreenDataSetDataList(BigScreenDataSetQueryDTO dto);

    /**
     *
     * @param dto
     * @return
     */
    JSONObject getScreenDataSetDataListQP(BigScreenDataSetQueryDTO dto);

    /**
     * 获取数据集分页
     * @param type
     * @param name
     * @param pageIndex
     * @param pageSize
     * @return
     */
    Page<ProDirDataSetVO> getDataSetPage(Integer type, String name, Integer pageIndex, Integer pageSize);

    /**
     * 获取数据集类型
     * @return
     */
    List<HashMap<String, Object>> getTypeList();

    /**
     * 根据id获取数据集
     * @param id
     * @return
     */
    ProDirDataSetVO getProDirDataSetById(Long id);

    JSONObject crosstable(BigCrossTableQueryDTO dto);
}
